/*
 * Each service implementation need to implement this interface for viewing into the GUI.
 */

package imageuploader.core;

import java.io.File;
import java.util.HashMap;
/**
 *
 * @author nir
 */
public interface ImageHostingService {
    /**
     * Login to the host
     * @param username
     * @param password
     * @throws imageuploader.core.ImageUploaderException
     */
    void login(String username, String password) throws ImageUploaderException;
    
    /**
     * Upload the files to the hosting service
     * @param files
     * @throws imageuploader.core.ImageUploaderException
     */
    void upload(File[] files) throws ImageUploaderException;
    /**
     * Create new album
     * @param album
     * @throws imageuploader.core.ImageUploaderException
     */
    void createAlbum(String album) throws ImageUploaderException;
    /**
     * Set the album to upload into
     * @param album
     */
    void setAlbum(String album);
    
    /**
     * 
     * @return  number of files to upload
     */
    int getUploadLength();
    
    /**
     * 
     * @return  All albums in the hosting service
     * @throws imageuploader.core.ImageUploaderException
     */
    HashMap<String, String> getAlbumList() throws ImageUploaderException;
}
